// 可能是我的node版本问题，不用严格模式使用ES6语法会报错
const models = require('./db');
const express = require('express');
const router = express.Router();

/************** 创建(create) 读取(get) 更新(update) 删除(delete) **************/

// 编写接口接口

// 创建接口
router.post('/api/wzg/createAccount',(req,res) => {
    console.log('创建接口调用');
    // 这里的req.body能够使用就在index.js中引入了const bodyParser = require('body-parser')
    let newAccount = new models.Login({
        name : req.body.name,
        age : req.body.age,
        sex : req.body.sex
    });
    // 保存数据newAccount数据进mongoDB
    newAccount.save((err,data) => {
        console.log(4);
        console.log(data);
        if (err) {
            res.send(err);
        } else {
            res.send(data);
        }
    });
});
// 获取
router.get('/api/wzg/getAccount',(req,res) => {
    console.log('获取');
    // 通过模型去查找数据库
    models.Login.find(function (err, docs) {
        if(err){
            // res.statusCode = 400;
            res.send(err);
        }
        console.log('获取结果：');
        console.log(docs);
        res.send(docs);
    });
});

// 删除
router.delete('/api/wzg/delete/:id',(req,res) => {
    models.Login.findOneAndRemove({
        _id:req.params.id
    })
    .then(person => res.send(`${person.name}删除成功`))
    .catch(err => {
        res.json(err);
    })
});
//删除 二
/*router.delete('/api/wzg/delete/:id',(req,res) => {
    var id = req.params.id;
    models.Login.findByIdAndUpdata(id)
    .then(person => res.send(`${person.name}删除成功`))
    .catch(err => {
        res.json(err);
    })
});*/
//删除 三
/*router.delete('/api/wzg/delete/:name',(req,res) => {
    var name = req.params.name;
    models.Login.remove({'name':name})
    .then(person => res.send(`${person.name}删除成功`))
    .catch(err => {
        res.json(err);
    })
});*/

// 更新
router.put('/api/wzg/updata/:id',(req,res) => {
    console.log(req.body.age);
    // findByIdAndUpdate
    models.Login.findOneAndUpdate({
        _id:req.params.id},
        {$set : {
            age:req.body.age
        }},{new:true})
    .then( person => {
        console.log('更新');
        console.log(person);
    })
    .catch( err => res.json(err))
});

// 筛选
router.get('/api/wzg/find/:name',(req,res) => {
    console.log('查找');
    console.log(req.params);
    models.Login.find({
        name:req.params.name})
    .then( (person) => {
        console.log('查找成功');
        console.log(person);
        res.send(person);
    })
    .catch( err => res.json(err))
})

// 登录注册

 function isEmptyObject(obj) {
    for (var key in obj) {
        return false
    };
    return true
};


// 注册
router.post('/api/register', (req,res) => {
    console.log('创建用户');
    var _user = {};
    _user.user = req.body.user;
    _user.psd = req.body.psd;
    _user.imgname = req.body.imgname;

    console.log(_user.imgname)
    // 这里的req.body能够使用就在index.js中引入了const bodyParser = require('body-parser')
    models.Register.find({
        user:_user.user
    },function(err,docs){
        if (err) {
            console.log('发生错误');
            res.statusCode = 400;
            console.log(err);
        }else{
            if (docs.length == 0) {
                let newUser = new models.Register({
                    user:_user.user,
                    psd:_user.psd,
                    userImg:_user.imgname
                });
                console.log('用户不存在');
                // 保存数据newAccount数据进mongoDB
                newUser.save((er,data) => {
                    if (er) {
                        res.send(er);
                    } else {
                        console.log('注册成功');
                        console.log(data);
                        res.json(true);
                    }
                });
            }else{
                res.json(false)
                console.log('用户已存在');
            }
        }
    })
});

// 登录
router.post('/api/login',(req,res) => {
    var _user = req.body.user,
        _psd = req.body.psd;
    // 通过模型去查找数据库
    models.Register.find({user:_user},function(err,docs){
        if (err) {
            console.log('发生错误');
            console.log(err);
        }else{
            if (docs.length == 0) {
                console.log('用户不存在');
                res.send('3');
                return
            }else{
                var psd = docs[0].psd;
                if (psd == _psd) {
                    console.log('密码正确');
                    // req.session.user['user'] = _user;
                    // req.session.user['psd'] = _psd;
                    res.send('1')
                }else{
                    console.log('密码不正确');
                    res.send('2')
                }
            }
        }
    })
});
// 上传头像
router.put('/api/updateImg', (req,res) => {
    console.log('上传头像');
    var _user = req.body._id;
    var imgSrc = req.body.imgName;
    // 这里的req.body能够使用就在index.js中引入了const bodyParser = require('body-parser')
    //
    // console.log(req.body.age);
    // findByIdAndUpdate
    models.Register.findOneAndUpdate({
        user:_user},
        {$set : {
            userImg:imgSrc
        }},{new:true})
    .then( person => {
        console.log('更新');
        console.log(person);
        res.send(person.userImg);
    })
    .catch( err => res.json(err))
});
// 获取用户信息
router.post('/api/wzg/getInfo',(req,res) => {
    console.log(req.body);
    models.Register.find({
        user:req.body.user},{psd:0,_id:0})
    .then( (person) => {
        console.log('查找成功');
        console.log(person);
        res.send(person);
    })
    .catch( err => res.json(err))
})

// 更新用户昵称
router.put('/api/wzg/updataUserName/:id',(req,res) => {
    // console.log(req.body);//请求体
    // console.log(req.params);//带的参数

    models.Register.findOneAndUpdate({
        user:req.params.id},
        {$set : {
            userName:req.body.userName
        }},{new:true})
    .then( (person,err) => {
        console.log('更新');
        if(person){
            console.log(person);
            console.log('更改后的：'+ person.userName)
            res.send(person.userName);//如果更新后的数据前端需要使用，则发送
        }else{
            console.log('错误');
            console.log(err);
            res.send(person.userName);//如果更新后的数据前端需要使用，则发送
        }

    })
    .catch( err => res.json(err))
});

// 更新用户生日
router.put('/api/wzg/updataUserBrithday/:id',(req,res) => {
    // console.log(req.body);//请求体
    // console.log(req.params);//带的参数
    models.Register.findOneAndUpdate({
        user:req.params.id},
        {$set : {
            birthday:req.body.birthday
        }},{new:true})
    .then( person => {
        console.log('更新');
        console.log(person.birthday);
        res.send(person.birthday);//如果更新后的数据前端需要使用，则发送
    })
    .catch( err => res.json(err))
});

module.exports = router;
